home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 April / EnigmA AMIGA RUN 17 (1997)(G.R. Edizioni)(IT)[!][issue 1997-04][EAR-CD].iso / EARCD / comm / misc / zpoint_3_14.lha / zpoint-3.14 / Rexx / AddToAlias.zprx < prev    next >
Text File  |  1996-02-18  |  6KB  |  209 lines

  1. /*
  2.     $VER: AddToAlias.zprx 2.0 (15.2.96) Copyright (c) Nils Görs
  3.  
  4.     Dies ist ein  ARexx-Skript für  Zodiac's Point mit  dem die Netz-
  5.     adresse der aktuellen Nachricht oder aller markierten Nachrichten
  6.     automatisch in die Aliasliste gespeichert wird.
  7.     Es wird überprüft, ob sich zum Realnamen evtl. die Netzadresse ge-
  8.     ändert hat, z.B. bei einem Serverwechsel.  Dann  kann man die alte
  9.     Netzadresse durch die neue, aktuelle, austauschen.
  10.  
  11.  
  12.     Sie dürfen dieses Skript beliebig kopieren,  solange  es  zusammen
  13.     mit  Zodiac's  Point  eingesetzt wird, aber verändern Sie es bitte
  14.     nicht ohne Erlaubnis des Autors.
  15.  
  16.     Sie erreichen den Autor wie folgt:
  17.  
  18.        Nils Görs              Tel. : +49 (0)202 78xxxx
  19.        Kaiserstr. 97a         EMail: N.Goers@Art-Line.de
  20.        42329 Wuppertal          oder über das ZP-Support-Brett.
  21.  
  22.    Verwenden Sie bitte nach Möglichkeit elektronische Post!
  23.  
  24.  
  25.     Hinweise zur Installation:
  26.  
  27.     Kopieren sie dieses Skript in  das  Rexx-Verzeichnis  von  ZP  und
  28.     fügen  sie  danach  der  Datei  'fkeys.zp'  auf Wunsch den Eintrag
  29.     "F1:SYS:Rexxc/RX ZPOINT:Rexx/AddToAlias.zprx %s" hinzu.
  30.  
  31.  
  32.     Dieses    Skript    benötigt   ab   V2.0   die   rexxtricks-   und
  33.     rexxreqtools.library.
  34.  
  35.     Ich übernehme keinerlei Garantien,  falls Daten verschlonzt werden
  36.     sollten.  Das  Skript erstellt deshalb, zur Sicherheit, eine Kopie
  37.     der Aliasliste, mit Namen "alias.zp.bak".
  38.  
  39.  
  40. Entwicklung:
  41. ------------
  42. V1.00  > V1.01:  Es wird nun automatisch erkannt, ob die Adresse schon
  43.                  in Ihrer Liste vorhanden ist.
  44. V1.01  > V1.02:  zwischen Groß-und Kleinschreibung wird nicht mehr
  45.                  unterschieden.
  46. V1.02  > V1.03:  genaue Unterscheidung zwischen Realnamen und Netz-
  47.                  adresse.
  48. V1.03  > V2.0    Total überarbeitete Version. Neuerungen:
  49.                  Es kann nun eine neue Netzadresse an eine vorhandene
  50.                  angehangen werden.
  51.                  Eine alte Netzadresse kann durch die neue ersetzt werden.
  52.                  Mehrere Empfänger können nacheinander abgearbeitet werden.
  53. */
  54.  
  55. /*******************************************************************
  56.  *      Bitte unterhalb dieser Zeile nichts mehr verändern!        *
  57.  *******************************************************************/
  58.  
  59. NL = '0a'x                      /* Zeichen für Zeilenumbruch */
  60.  
  61. OPTIONS RESULTS
  62.  
  63. /* ------ von welchem ZP Port wurde das Script aufgerufen ? ------ */
  64. PARSE ARG zpPort
  65. IF zpPort == "" THEN
  66.    zpPort = "ZPoint"
  67. ADDRESS VALUE zpPort
  68.  
  69. /* öffne alle nötigen libraries - wenn nicht möglich Programmende */
  70. IF ~SHOW('LIBRARIES','rexxtricks.library') THEN
  71.   IF ~ADDLIB('rexxtricks.library',0,-30,0) THEN
  72.     EXIT
  73. IF ~SHOW('LIBRARIES','rexxreqtools.library') THEN
  74.   IF ~ADDLIB('rexxreqtools.library',0,-30,0) THEN
  75.     EXIT
  76.  
  77. WHICHLEVEL
  78.  IF (RESULT ~== 'BOARD') THEN
  79.  DO
  80.   requestnotify "Bitte begeben Sie sich in ein Brett!"
  81.   EXIT
  82.  END
  83.  
  84. HOMEPATH
  85. Filename=result||"/alias.zp"
  86.  
  87. CALL RXTR_READFILE(Filename,Aliasliste)
  88.  
  89. COUNT LISTED
  90. Anzahl_listed = result
  91.  
  92. backupnote = 0
  93.  
  94. IF Anzahl_listed > 0 THEN DO
  95. JUMPTOMESSAGE 1
  96.  
  97. MESSAGEINFO LISTED
  98. IF result == 1 THEN CALL _main
  99.  
  100. more = 1
  101. DO WHILE more
  102.  JUMPTOMESSAGE LISTED
  103.  more = (RC)
  104.  IF more = 1 THEN CALL _main
  105. END
  106. EXIT
  107. END
  108.  
  109. _main:
  110. MESSAGEINFO AUTHOR
  111. Username=Result
  112. Bool=VERIFY(Username," ",MATCH)        /* Aus wievielen Zeichen besteht die Netzadresse ?? */
  113. IF Bool ~== 0 THEN
  114.  DO
  115.   BoolEnd=VERIFY(Username,")",MATCH)    /* Wo endet der Realname ?? */
  116.   Bool=Bool-1
  117.  
  118.   Netzadresse=LEFT(Username,bool)    /* Netzadresse rauskopieren */
  119.   Boolend=Boolend-Bool-1
  120.   Realname=RIGHT(Username,boolend)    /* Realnamen rauskopieren */
  121.  
  122.   Realname=COMPRESS(Realname,"()")    /* ( und ) werden aus String entfernt */
  123.    CALL AddToAlias
  124.  RETURN
  125.  END
  126.  
  127. ELSE
  128.  requeststring 'PROMPT "Bitte den _UserNamen eingeben"'
  129.  Realname=result
  130.  IF (Realname ~== '') THEN
  131.   DO
  132.    Netzadresse=Username
  133.    CALL AddToAlias
  134.    RETURN
  135.   END
  136.   ELSE
  137.    RequestNotify 'Keinen Namen eingegeben!'
  138.  RETURN
  139.  
  140. AddToAlias:
  141. Netznummer = RXTR_LSEARCH('#?'||Netzadresse||'#?',Aliasliste,,,pattern)
  142. Realnummer = RXTR_LSEARCH('#?'||Realname||'#?',Aliasliste,,,pattern)
  143.  SELECT
  144.   WHEN BITAND(Netznummer,Realnummer) == -1 THEN CALL AddNewUser
  145.   WHEN Netznummer ~= -1 THEN CALL NetzadresseExistiert
  146.   WHEN Realnummer ~= -1 THEN CALL NeueNetzadresse
  147.   OTHERWISE
  148.  NOP
  149.  END
  150. RETURN
  151.  
  152. /* ein User wird ganz neu eingetragen! */
  153. AddNewUser:
  154. requestresponse "Möchten Sie wirklich "Realname" in",
  155.               NL"Ihre Aliasliste aufnehmen?"
  156. IF (RC) == 0 THEN RETURN
  157. i = Aliasliste.0
  158. i = i+1
  159. AliasListe.i = NL||"N:"||Realname
  160. i = i+1
  161. AliasListe.i = "A:"||Netzadresse
  162. i = i+1
  163. AliasListe.i = "-"
  164. AliasListe.0 = i
  165.  
  166. IF backupnote = 0 THEN ADDRESS COMMAND "copy" Filename "TO" Filename||".bak"
  167. CALL RXTR_WRITEFILE(Filename,Aliasliste)
  168. backupnote = 1
  169. RETURN
  170.  
  171. NetzadresseExistiert:
  172. requestnotify Netzadresse||NL"befindet sich schon in Ihrer Aliasliste!"
  173. RETURN
  174.  
  175. NeueNetzadresse:
  176. IF Netznummer ~= -1 THEN RETURN
  177. i = realnummer+1
  178.         CALL rtezrequest("Es gibt schon einen" '"'Realname'"' "in Ihrer Aliasliste.",
  179.                        NL"Die Netzadressen stimmen aber nicht überein, evtl. hat",
  180.                        NL||Realname "einen Serverwechsel durchgeführt.",
  181.                     NL NL"NEU:" Netzadresse,
  182.                        NL"ALT:" DELSTR(Aliasliste.i,1,2),
  183.                     NL NL"Was soll also mit der neuen Adresse passieren?",,
  184.                          "_Anhängen|für (alle) alte _einsetzen|_nix!","Hups!","rt_pubscrname="zpPort)
  185. SELECT
  186.  WHEN result == 1 THEN CALL Anhaengen
  187.  WHEN result == 2 THEN CALL AlteErsetzen
  188.   OTHERWISE
  189.   requestnotify "nix!"
  190.  END
  191. RETURN
  192.  
  193. Anhaengen:
  194. Aliasliste.i = Aliasliste.i||","Netzadresse
  195.  
  196. IF backupnote = 0 THEN ADDRESS COMMAND "copy" Filename "TO" Filename||".bak"
  197. CALL RXTR_WRITEFILE(Filename,Aliasliste)
  198. backupnote = 1
  199. RETURN
  200.  
  201. AlteErsetzen:
  202. Aliasliste.i = "A:"Netzadresse
  203.  
  204. IF backupnote = 0 THEN ADDRESS COMMAND "copy" Filename "TO" Filename||".bak"
  205. CALL RXTR_WRITEFILE(Filename,Aliasliste)
  206. backupnote = 1
  207. RETURN
  208. /*EOS*/
  209.